#include "bsp_gpio.h"

void bsp_gpio_init(void)
{
    /* clk 配置 */
    rcu_periph_clock_enable(LED_GPIO_CLK);

    /* gpio 配置 */
    gpio_init(LED_GPIO_TYPE, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, LED_GPIO_PIN);
    gpio_bit_reset(LED_GPIO_TYPE, LED_GPIO_PIN);
}

void bsp_gpio_on(void)
{
    gpio_bit_set(LED_GPIO_TYPE, LED_GPIO_PIN);
}

void bsp_gpio_off(void)
{
    gpio_bit_reset(LED_GPIO_TYPE, LED_GPIO_PIN);
}

void bsp_gpio_toggle(void)
{
    if (gpio_output_bit_get(LED_GPIO_TYPE, LED_GPIO_PIN))
    {
        gpio_bit_reset(LED_GPIO_TYPE, LED_GPIO_PIN);
    }
    else
    {
        gpio_bit_set(LED_GPIO_TYPE, LED_GPIO_PIN);
    }
}

void bsp_gpio_test(void)
{
    bsp_gpio_toggle();
    delay_ms(1500);
}
